package com.css.crm.dao;

import com.css.crm.vo.CustomerVo;

/**
 * Interface for DAO on table VP_CUST
 * 
 * @author AIS
 */
public interface CustomerDao extends BaseDao {

	/**
	 * Get customer record by customer id
	 * 
	 * @param custId
	 *            Customer ID to specific record to be retrieved
	 * @return Unique customer record
	 */
	CustomerVo getCustomerByPK(String custId);

	/**
	 * Generate customer id by calling database function
	 * 
	 * @param origCtryCde
	 *            Origin country code of customer
	 * @return
	 */
	String getCustomerNextId(Long oriCtryCde);

	/**
	 * Create customer record
	 * 
	 * @param customer
	 *            CustomerVo object
	 * @return Row count affected
	 */
	int insertCustomer(CustomerVo customer);

	/**
	 * Update customer record
	 * 
	 * @param customer
	 *            Updated CustomerVo object
	 * @return Row count affected
	 */
	int updateCustomerByPK(CustomerVo customer);

	/**
	 * Delete customer record by customer id
	 * 
	 * @param custId
	 *            Customer id to specific record to be deleted
	 * @return Row count affected
	 */
	int deleteCustomerByPK(String custId);
}
